package com.xuecheng.content.agent;

import com.xuecheng.api.media.model.dto.MediaDTO;
import com.xuecheng.common.constant.XcFeignServiceNameList;
import com.xuecheng.common.domain.response.RestResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

/**
 * <p></p>
 * Feign接口编写：
 * 1.在接口类上添加注解
 *
 * @FeignClient 属性：value/name 相同效果
 * 被调用服务在注册中心出名称：media-service
 * <p>
 * 2.被调用服务的接口地址和方法
 * Feign远程调用时需要使用springmvc的注解来完成
 * 请求路径和方式: @xxxMapping(xxxxx)
 * 一定要写上完整的路径地址
 * 业务服务的根路径+业务地址
 * <p>
 * 参数的表述:
 * queryString：@RequestParam
 * Restful：@PathVariable
 * RequestBody：@RequestBody
 * <p>
 * 3.开启Feign功能
 * 在启动类上添加注解
 * @Description:
 */
@FeignClient(XcFeignServiceNameList.XC_MEDIA_SERVICE)
public interface MediaApiAgent {

    @GetMapping("media/l/media/{mediaId}")
    RestResponse<MediaDTO> getMediaById4s(@PathVariable Long mediaId);
}
